namespace Vibstudio.NetConfigurator.IoC
{
    using System;

    [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = false), Serializable]
    public class PluginAttribute : Attribute
    {
        private String _name;
        private String _manufacturer;
        private String _version;
        private String _description;

        public PluginAttribute(String name, String manufacturer, String version, String description)
        {
            Name = name;
            Manufacturer = manufacturer;
            Version = version;
            Description = description;
        }

        public String Name
        {
            get { return _name; }
            set { _name = value; }
        }
        
        public String Manufacturer
        {
            get { return _manufacturer; }
            set { _manufacturer = value; }
        }

        public String Version
        {
            get { return _version; }
            set { _version = value; }
        }

        public String Description
        {
            get { return _description; }
            set { _description = value; }
        }

        public override String ToString()
        {
            return string.Format("{0} v{1}", Name, Version);
        }
    }
}
